﻿using DLL.Standard.Infrastructure;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DLL.NET50.DB.MS.Entity
{
    public class adi_PumpBackParam : CNotifyPropertyChanged, ICloneable
    {
        [StringLength(255)]
        private string _DrugPumpBackCode;
        [StringLength(255)]
        private string _DrugFlushGroupCode;
        private int _LoopIndex = 0;//回抽次数ID
        private float _PumpbackVolume = 3;//回抽容积
        private float _PumpBackWait = 1;//回抽等待
        private float _PumpBackInAire = 0;//回抽注入空气体积
        private int _PumpBackInAireSpeed = 50;//回抽注入空气速度       
        private int _PumpBackOutSpeed = 50;//回抽速度

        private int _PumpBackEnableRepull = 0;//回抽启用反复多抽
        private int _PumpBackRePullCount = 0;//回抽反复多抽次数次数
        private int _PumpBackRePullVolume = 3;//回抽反复多抽容积
        private float _PumpBacRePullkWait = 1;//回抽反复多抽等待
        private int _PumpBackRePullInSpeed = 50;//回抽反复多抽注入速度
        private int _PumpBackRePullOutSpeed = 20;//回抽反复多抽抽出速度
        private int _PumpBackSolventPushBackSpeed = 80;//回抽回打速度
        private int _InjectorRinseCount = 1;
        private float _InjectorRinseVolume = 5;
        [Key]
        [StringLength(255)]
        public string DrugPumpBackCode { get { return _DrugPumpBackCode; } set { _DrugPumpBackCode = value; this.OnPropertyChanged(); } }
        [StringLength(255)]
        public string DrugFlushGroupCode { get { return _DrugFlushGroupCode; } set { _DrugFlushGroupCode = value; this.OnPropertyChanged(); } }
        public int LoopIndex { get { return _LoopIndex; } set { _LoopIndex = value; this.OnPropertyChanged(); } }
        public float PumpbackVolume { get { return _PumpbackVolume; } set { _PumpbackVolume = value; this.OnPropertyChanged(); } }
        public float PumpBackInAire { get { return _PumpBackInAire; } set { _PumpBackInAire = value; this.OnPropertyChanged(); } }
        public int PumpBackInAireSpeed { get { return _PumpBackInAireSpeed; } set { _PumpBackInAireSpeed = value; this.OnPropertyChanged(); } }
        public int PumpBackOutSpeed { get { return _PumpBackOutSpeed; } set { _PumpBackOutSpeed = value; this.OnPropertyChanged(); } }
        public float PumpBackWait { get { return _PumpBackWait; } set { _PumpBackWait = value; this.OnPropertyChanged(); } }

        public int PumpBackEnableRepull { get { return _PumpBackEnableRepull; } set { _PumpBackEnableRepull = value; this.OnPropertyChanged(); } }
        public int PumpBackRePullCount { get { return _PumpBackRePullCount; } set { _PumpBackRePullCount = value; this.OnPropertyChanged(); } }
        public int PumpBackRePullVolume { get { return _PumpBackRePullVolume; } set { _PumpBackRePullVolume = value; this.OnPropertyChanged(); } }
        public float PumpBacRePullkWait { get { return _PumpBacRePullkWait; } set { _PumpBacRePullkWait = value; this.OnPropertyChanged(); } }
        public int PumpBackRePullInSpeed { get { return _PumpBackRePullInSpeed; } set { _PumpBackRePullInSpeed = value; this.OnPropertyChanged(); } }
        public int PumpBackRePullOutSpeed { get { return _PumpBackRePullOutSpeed; } set { _PumpBackRePullOutSpeed = value; this.OnPropertyChanged(); } }
        public int PumpBackSolventPushBackSpeed { get { return _PumpBackSolventPushBackSpeed; } set { _PumpBackSolventPushBackSpeed = value; this.OnPropertyChanged(); } }
        public int InjectorRinseCount { get { return _InjectorRinseCount; } set { _InjectorRinseCount = value; this.OnPropertyChanged(); } }
        public float InjectorRinseVolume { get { return _InjectorRinseVolume; } set { _InjectorRinseVolume = value; this.OnPropertyChanged(); } }

        public object Clone()
        {
            //浅复制，只可以复制值类型的变量，对医用类型的变量没用
            return this.MemberwiseClone();
        }
        public virtual adi_FlushGroup flushGroup { get; set; }
    }
}
